/*
 *  ConcreteNoteGeneratorSelector.h
 *  SoundController0002
 *
 *  Created by jiro on 11/10/10.
 *  Copyright 2011 jiro music. All rights reserved.
 *
 */

#pragma once

#include "../HarmonicSystem/HarmonicSystem.h"

namespace sc
{
namespace system0039
{
	class ConcreteNoteGenerator;

	class ConcreteNoteGeneratorSelector
	{
	private:

		std::vector< ConcreteNoteGenerator > generators;

		std::vector< double > probablities;

	public:

		void AddGenerator( const ConcreteNoteGenerator& generator, double probablity );

		void SetProbablity( int index, double probablity );

		const ConcreteNoteGenerator& Select() const;

		int GetGeneratorCount() const;
		
		bool operator == ( const ConcreteNoteGeneratorSelector& rhs ) const;

	};

}
}